
package com.trial.area.permission.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.trial.area.permission.dao.RoleDao;
import com.trial.area.permission.dao.RolePermissionDao;
import com.trial.area.permission.entity.RoleVO;
import com.trial.area.permission.param.RoleParam;

/**
 * 角色信息Service实现类
 *
 * @author 朱国军
 * @version 2016年03月23日 朱国军
 */
@Service
public class RoleService {
    
    @Autowired
    private RoleDao roleDao;
    
    @Autowired
    private RolePermissionDao rolePermissionDao;
    
    /**
     * 新增，注：返回的添加的条数，获取主键用entity.getId();
     *
     * @param entity 要增加的角色信息对象
     * @return 返回新增的条数
     */
    public Integer insert(RoleVO entity) {
        return roleDao.insert(entity);
    }
    
    /**
     * 修改
     *
     * @param entity 要修改的角色信息对象
     * @return 返回修改的条数
     */
    public Integer update(RoleVO entity) {
        return roleDao.update(entity);
    }
    
    /**
     * 根据ID获取角色信息实体
     *
     * @param id 主键
     * @return 角色信息信息
     */
    public RoleVO findById(String id) {
        return roleDao.findById(id);
    }
    
    /**
     * 按查询条件【分页】查询
     *
     * @param param 角色信息查询条件
     * @return 角色信息列表
     */
    public List<RoleVO> queryByPage(RoleParam param) {
        return roleDao.queryByPage(param);
    }
    
    /**
     * 根据ID删除角色信息(同时删除对应的角色权限关系)
     *
     * @param id 主键
     */
    @Transactional
    public Integer delete(String roleId) {
        rolePermissionDao.deleteRolePermission(roleId, null, null);
        return roleDao.delete(roleId);
    }

    /**
     * 根据用户ID查询用户角色
     *
     * @param userId 用户ID
     * @return
     */
    public List<String> queryRoleByUserId(String userId) {
        return roleDao.queryRoleByUserId(userId);
    }
}
